Electronic data packets are transferred from one computer system to another through a network. Networks range from local area networks (LANs) such as home networks and office networks to wide area networks (WANs) such as the Internet. To move data packets from one computer system to another, in certain cases the packets are routed through one or more networks. For routing a packet, the packet may specify a destination address or the destination address may be otherwise known, and intermediate routers within the network receive the packet and forward it downstream based on the destination address.
Moving data packets through the network consumes limited network resources and requires a certain amount of time for the data packets to reach their destinations. The rate at which data packets can be moved from one point to another is referred to as the bandwidth, usually expressed in data bits per second. Each communication link in a network has a fixed amount of bandwidth available for carrying data packets.
When customers purchase network access, the purchase involves acquiring a certain amount of bandwidth between the router or other communication device located at the customer premises and an edge router located within a network of a service provider. The edge router may have many ports connected to many different customers, and the edge router has one or more ports connected to core routers of the service provider network. The edge router has a limited amount of bandwidth for exchanging packets through each port to the customers as well as a limited amount of bandwidth for exchanging packets through the port linked to the core router. The total bandwidth offered to the customers is bounded by the bandwidth available between the edge router and the core router.
Customers may desire to transfer packets for various types or classes of services, such as those defined by Request for Comments (RFC) 2597. For example, a single customer may utilize the network to transfer packets for a real-time service such as for voice-over Internet Protocol (VoIP) telephone calls, while also transferring packets for an interactive service such as video, while also transferring packets for business services such as access to remote file servers, while also transferring packets for more general services such as Internet surfing. However, in transferring all of these packets of various services, the customer may experience poor quality services because not enough bandwidth is available for one service due to the bandwidth being used for packets of other services. For example, VoIP call quality may become unacceptable because the data connection to the network is using a substantial amount of bandwidth for Internet surfing and file transfers.